package io.shallwe.scanner.manual;

import org.tio.client.ClientChannelContext;
import org.tio.client.ClientTioConfig;
import org.tio.client.ReconnConf;
import org.tio.client.TioClient;
import org.tio.client.intf.ClientAioHandler;
import org.tio.client.intf.ClientAioListener;
import org.tio.core.Node;
import com.jfinal.kit.LogKit;
import com.jfinal.kit.PropKit;
/**
 * 2#上线手动扫描枪启动器
 * @author 王小伟
 * @date 2016-06-16 08:21:11
 */
public class ManualScannerStarter2 {

	private static ReconnConf reconnConf = new ReconnConf(5000L);
	// 事件监听器
	public static ClientAioListener aioListener = new ManualScannerListener();
	// handler, 包括编码、解码、消息处理
	
	public static ClientAioHandler tioClientHandler = new ManualScannerHandler();
	// 一组连接共用的上下文对象
	public static ClientTioConfig clientGroupContext = new ClientTioConfig(tioClientHandler, aioListener,
			reconnConf);
	public static TioClient tioClient = null;
	public static ClientChannelContext clientChannelContext = null;
	

	/**
	 * 启动程序入口
	 */
	public boolean start() {
		String serverIp = "172.30.31.58";
		int serverPort = PropKit.getInt("manualScanner.port", 51000);
		Node serverNode = new Node(serverIp, serverPort);
		try {
			clientGroupContext.setHeartbeatTimeout(5000L);
			tioClient = new TioClient(clientGroupContext);
			clientChannelContext = tioClient.connect(serverNode);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		LogKit.warn("2#上线手动扫描枪启动成功");
		return true;
	}

	public boolean stop() {
		if(tioClient!=null) {
			tioClient.stop();
		}
		return true;
	}

}
